package com.cloud.pole.shop.controller.order;

import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import com.cloud.pole.common.constant.CommonConstants;
import com.cloud.pole.common.exception.BaseException;
import com.cloud.pole.common.exception.ParamException;
import com.cloud.pole.common.msg.ApiRestResponse;
import com.cloud.pole.common.util.RegexUtils;
import com.cloud.pole.shop.service.order.OrderCommentService;

import lombok.extern.slf4j.Slf4j;

/*
*2019年3月20日
*cloud-shop
*author:frank-chen
*/
@Controller
@Slf4j
@RequestMapping("/orderComment/front")
public class ShopOrderCommentController {

	@Autowired
	private OrderCommentService orderCommentService;

	/**
	 * 订单评论（根据订单订单id）
	 * @param token
	 * @param orderIds
	 * @return
	 */
	@ResponseBody
	@RequestMapping("/addOrderComment")
    public ApiRestResponse<Boolean> addOrderComment(
    		@RequestHeader(defaultValue = "") String token,
    		@RequestParam(defaultValue = "") String orderItemId,
			@RequestParam(defaultValue = "") String starNum,
    		@RequestParam(defaultValue = "") String commentContent){   
    	try {
			ParamException.err(StringUtils.isBlank(token), "token不能为空");    		
			ParamException.err(StringUtils.isBlank(orderItemId), "orderItemId不能为空");
			ParamException.err(StringUtils.isBlank(starNum), "starNum不能为空");
			ParamException.err(StringUtils.isBlank(commentContent), "commentContent不能为空");
			ParamException.err(!RegexUtils.isPositiveInteger(orderItemId), "orderItemId错误");
			ParamException.err(!RegexUtils.isPositiveInteger(starNum), "starNum错误");
			
			return ApiRestResponse.success(CommonConstants.STATUS_OK_MESSAGE, orderCommentService.addOrderComment(token, Long.parseLong(orderItemId), Integer.parseInt(starNum), commentContent));
    	} catch (BaseException e) {
			return ApiRestResponse.fail(e.getStatus(), e.getMessage(), null);
		} catch (Exception e) {
			log.error(CommonConstants.STATUS_ERROR_MESSAGE + "{}", e.getMessage(), e);
			return ApiRestResponse.fail(CommonConstants.STATUS_ERROR_MESSAGE, null);
		}
    }
}
